/**
 * @param {number[][]} image
 * @param {number} sr
 * @param {number} sc
 * @param {number} newColor
 * @return {number[][]}
 */

var floodFill = function (image, sr, sc, newColor) {
    dfs(image, sr, sc, newColor, image[sr][sc])
    return image
    function dfs(image, i, j, newColor, num) {
        // 超出范围 直接退出
        if (i < 0 || i >= image.length || j < 0 || j >= image[0].length) {
            return
        }
        // 已经被涂成新颜色 或者 不是指定的数字 直接退出
        if (image[i][j] === newColor || image[i][j] !== num) {
            return
        }
        image[i][j] = newColor
        dfs(image, i + 1, j, newColor, num)
        dfs(image, i - 1, j, newColor, num)
        dfs(image, i, j + 1, newColor, num)
        dfs(image, i, j - 1, newColor, num)
    }
};